Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Cyfry > Słowa, przetwarzanie
modern
post
Post #1





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 2.10.2005

Ostrzeżenie: (20%)
X----


Witam... mam pewien problem...
dorwałem gdzies skrypt (chyba nawet z tego forum) ktory przerabia cyfry na słowa
no wszystko fajnie... działa... ale okazało się że potrzeba mi milionów...
a skrypt dziala tylko do 999 999 : / a sam nie umiem tego dorobić
próbowałem dodać array i cos tam jeszcze z elseif... ale wszystko sie sypało : (
ktoś wie jak to 'dorobić'?
bo wg. podpowiedzi autora jest to banalne... ale nie dla mnie : (

  1. <?
  2.  
  3. $jedn=array(1=>"jeden","dwa","trzy","cztery","pięć","sześć","siedem","osiem","dziewięć","dziesięć","jedenaście","dwanaście",
  4.             "trzynaście","czternaście","piętnaście","szesnaście","siedemnaście","osiemnaście","dziewiętnaście");
  5.             
  6. $dzies=array(2=>"dwadzieścia","trzydzieści","czterdzieści","pięćdziesiąt","sześćdziesiąt","siedemdziesiąt","osiemdziesiąt","dziewięćdziesiąt");
  7.  
  8. $setki=array(1=>"sto","dwieście","trzysta","czterysta","pięćset","sześćset","siedemset","osiemset","dziewięćset");            
  9.  
  10.  
  11. function kwota_slownie($kwota) {
  12.   
  13.   global $jedn,$dzies,$setki;     
  14.  
  15.   // usuniecie zbednych zer z poczatku ciagu (zeby np. "009" bylo zamieniane na "dziewiec")
  16.   $kwota=(string)(floor($kwota));
  17.   $kwota=ereg_replace("^(0)","",$kwota);    
  18.     
  19.   $str_dl=strlen($kwota);
  20.   
  21.   if ($kwota<20) { $slownie=$jedn[$kwota]; }
  22.   
  23.   elseif ($kwota<100) { 
  24.       
  25.     $j=$kwota[1];   $d=$kwota[0];
  26.     $slownie=$dzies[$d]." ".$jedn[$j];
  27.     
  28.   }    
  29.   
  30.   elseif ($kwota<1000) { 
  31.       
  32.     $s=$kwota[0];
  33.     $d=substr($kwota,1,$str_dl);
  34.     $slownie=$setki[$s]." ".kwota_slownie($d); 
  35.     
  36.   }
  37.   
  38.   elseif ($kwota<1000000) {         
  39.     
  40.     $d=substr($kwota,-3);  
  41.     if ($kwota<2000) { $t="tys."; }
  42.     elseif ($kwota<5000) { 
  43.       
  44.       $jt=$kwota[0];        
  45.       $t=$jedn[$jt]." tys.";
  46.  
  47.     }      
  48.     
  49.     else { 
  50.         
  51.       $jt=substr($kwota,0,$str_dl-3);
  52.       $t=kwota_slownie($jt)." tys.";
  53.           
  54.     }      
  55.       
  56.     $slownie=$t." ".kwota_slownie($d);    
  57.       
  58.   }     
  59.   
  60.   // to juz ponad milion - mozna zrobic tak samo jak dla tysiecy
  61.   // mi nie było to już potrzebne :)
  62.   else { $slownie=$kwota; }
  63.   
  64.   
  65.   return($slownie);
  66.   
  67. }
  68.  
  69. ?>


Ten post edytował modern 21.11.2005, 20:01:44
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Lonas
post
Post #2





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

Ostrzeżenie: (20%)
X----


A jak wyświetlić wynik tego skryptu, wpisałem na sztywno na poczatku liczbe

$kwota=543;


ale caly czas strona wyswietla mi sie pusta
Go to the top of the page
+Quote Post
Termit_
post
Post #3





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 11.06.2005
Skąd: Gostyń

Ostrzeżenie: (0%)
-----


Wywołując funkcję, np.
  1. <?php
  2. // tamten kod
  3. echo kwota_slownie(543);
  4. ?>
Go to the top of the page
+Quote Post
Lonas
post
Post #4





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

Ostrzeżenie: (20%)
X----


A ma ktoś może link do działającego skryptu który doda mi jeszcze złotych, złote i tak dalej ?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 19:53